package oc_viper

import (
	"fmt"
	"log"
	"oc_saas/internal/glo"
	"os"

	"github.com/fsnotify/fsnotify"
	"github.com/spf13/viper"
)

func InitConf() {
	mode := os.Getenv("MODE")
	v := viper.New() //设置一个新的的viper
	switch mode {
	case "dev":
		v.SetConfigName("config.dev.yaml") //设置文件
	case "pro":
		v.SetConfigName("config.yaml")
	}
	v.SetConfigType("yaml")      //设置文件类型
	v.AddConfigPath("./setting") //根目录下的配置文件的路径
	err := v.ReadInConfig()
	if err != nil {
		log.Fatal(fmt.Errorf("Fatal error config file: %s", err))
	}
	// 监听配置
	v.WatchConfig()
	v.OnConfigChange(func(e fsnotify.Event) {
		fmt.Println("配置文件更新:", e.Name)
		if err = v.Unmarshal(&glo.OC_CONF); err != nil {
			fmt.Println(err)
		}
	})
	if err = v.Unmarshal(&glo.OC_CONF); err != nil {
		fmt.Println(err)
	}
}
